package com.powerbank.user.service;

import com.powerbank.user.vo.BillingInfoVO;

/**
 * 计费服务接口
 */
public interface BillingService {

    /**
     * 计算实时费用
     *
     * @param orderId 订单ID
     * @return 计费信息
     */
    BillingInfoVO calculateCurrentBilling(Long orderId);

    /**
     * 创建计费记录
     *
     * @param orderId 订单ID
     * @return 计费记录ID
     */
    Long createBillingRecord(Long orderId);

    /**
     * 更新计费记录（归还时调用）
     *
     * @param orderId 订单ID
     * @return 最终计费信息
     */
    BillingInfoVO updateBillingRecord(Long orderId);

    /**
     * 获取计费预览（租借前显示）
     *
     * @param userId 用户ID
     * @return 计费预览信息
     */
    BillingInfoVO getBillingPreview(Long userId);
}